package homework;

import javax.swing.plaf.metal.MetalIconFactory;
import java.util.*;

public class MapZuoye {
    /**
     * 1. 现在有一个map集合如下：
     * Map<Integer,String> map = new HashMap<Integer, String>();
     * map.put(1, "Amy");
     * map.put(2, "Joe");
     * map.put(3, "Tom");
     * map.put(4, "Susan");
     * 要求：
     * 1.遍历集合，并将序号与对应人名打印。
     * 2.向该map集合中插入一个编码为5姓名为控制台输入的人名的信息
     * 3.移除该map中的编号为4的信息
     * 4.将map集合中编号为3的姓名信息修改为"Tommy"
     * 5.再次遍历经过上述操作后的集合，并将序号与对应人名打印。(注：第一次输出和第二次输出需用空行隔开)
     * <p>
     * 2. 给定["a", "b", "a", "b", "c", "a", "b", "c", "b"]字符串数组，然后使用Map的key来保存数组中字符串元素，value保存该字符串元素的出现次数，最后统计出各字符串元素的出现次数。
     */
    public static void main(String[] args) {
        //第一题
//        Map<Integer, String> map = new HashMap<Integer, String>();
//        map.put(1, "Amy");
//        map.put(2, "Joe");
//        map.put(3, "Tom");
//        map.put(4, "Susan");
//
//        Set set = map.keySet();
//        for (Object key : set) {
//            System.out.print((key + ":" + map.get(key)+""));
//        }
//        Scanner scan = new Scanner(System.in);
//        System.out.println();
//        System.out.println("请输入要添加的人名");
//        String name = scan.next();
//        map.put(5, name);
//        map.remove(4);
//        map.put(3,"Tommy");
//        for (Object key : set) {
//            System.out.print((key + ":" + map.get(key)+""));
//        }

        //第二题
        // 2. 给定["a", "b", "a", "b", "c", "a", "b", "c", "b"]字符串数组，
        // 然后使用Map的key来保存数组中字符串元素，value保存该字符串元素的出现次数，
        // 最后统计出各字符串元素的出现次数。
        String[] strings = {"a", "b", "a", "b", "c", "a", "b", "c", "b","d","d"};
        Map map2 = new HashMap();
        List list = new ArrayList();

        for (int i = 0; i < strings.length; i++) {
            list.add(strings[i]);
        }
        System.out.println(list);

        HashSet set = new HashSet();
        set.addAll(list);
        System.out.println(set);

        ArrayList list1 = new ArrayList();
        list1.addAll(set);//将set转为list
        System.out.println(list1);

        int changeTime = 0;
        for (int i = 0; i < list1.size(); i++) {
            for (int j = 0; j < strings.length; j++) {
                if (list1.get(i).equals(strings[j])) {
                        changeTime++;
                        map2.put(list1.get(i), changeTime);
                }
            }
            changeTime=0;
        }
        System.out.println(map2);


    }
}
